Cơ sở cơ bản của hạt nhân Hạt_nhân_(khoa_học_máy_tính)

Mục đích chính của hạt nhân là quản lý tài nguyên máy tính và cho phép những chương trình khác chạy và sử dụng những tài nguyên này. Bình thường, tài nguyên này bao gồm:

  • Bộ vi xử lý, đây là thành phần trung tâm của hệ thống máy tính, có trách nhiệm thực thi chương trình. Hạt nhân có trách nhiệm quyết định tại thời điểm nào, chương trình đang chạy nào được thực thi.
  • Bộ nhớ máy tính. Bộ nhớ được sử dụng để lưu chương trình và dữ liệu. Hạt nhân sẽ quyết định vùng nhớ nào mà một tiến trình được phép sử dụng, và xác định điều gì phải làm khi không đủ bộ nhớ.
  • Bất cứ thiết bị xuất/nhập có trong máy tính, như bàn phím, chuột, đĩa, máy in, màn hình v.v.... Hạt nhân sẽ phân bổ yêu cầu từ phần mềm đến để thực hiện xuất/nhập đến thiết bị phù hợp và cung cấp phương pháp thuận tiện sử dụng thiết bị.

Quản lý tiến trình

Tác vụ chính của hạt nhân là cho phép kích hoạt ứng dụng và hỗ trợ nó với tính năng như trừu tượng phần cứng. Để chạy một ứng dụng, hạt nhân sẽ thiết lập một không gian địa chỉ cho ứng dụng, tải tệp chứa mã ứng dụng vào bộ nhớ, thiết lập ngăn xếp cho chương trình và nhảy đến vị trí chương trình trong bộ nhớ, do đó chương trình chạy.
Hạt nhân đa nhiệm cho người dùng thấy ảo giác một số tiến trình có thể chạy song song trên máy tính là cao hơn số tiến trình mà máy tính vật lý có thể thực hiện được. Thông thường, số lượng tiến trình của một hệ thống có thể chạy song song là số bộ vi xử lý được cài đặt.
Trong hệ thống đa nhiệm ưu tiên, hạt nhân sẽ đưa cho chương trình một khoảng thời gian và chuyển từ tiến trình sang tiến trình nhanh mà người dùng xem như song song. Hạt nhân sẽ sử dụng thuật toán lập lịch để xác định tiến trình nào sẽ chạy tiếp và bao nhiêu thời gian. Thuật toán này cho phép một số tiến trình có mức độ ưu tiên cao hơn những tiến trình khác. Hạt nhân cũng cung cấp cho tiến trình một cách để liên lạc với nhau; đó là thông tin liên tiến trình và cái chính là chia sẻ bộ nhớ, gửi thông điệp...
Hạt nhân cũng có thể hỗ trợ đa xử lý (đa xử lý đối xứng SMP hoặc Non-Uniform Memory Access) trong trường hợp này, những chương trình khác nhau và luồng sẽ chạy trên bộ vi xử lý khác nhau.

Quản lý bộ nhớ

Hạt nhân có toàn quyền truy xuất bộ nhớ và phải cho phép tiến trình truy xuất an toàn bộ nhớ nếu chúng cần. Thường thì đầu tiên thực hiện điều này là địa chỉ ảo, thường đạt được bằng phân trangphân đoạn. Địa chỉ ảo cho phép hạt nhân đưa ra địa chỉ vật lý khác với địa chỉ thực. Không gian địa chỉ ảo có thể khác với tiến trình; địa chỉ mà một tiến trình truy xuất tại một thời điểm cụ thể có thể khác với tiến trình khác từ tiến trình khác tại cùng địa chỉ. Điều này cho phép chương trình nghĩ rằng chỉ có nó là duy nhất chạy và vì thế ngăn chặn được ứng dụng va vào nhau.

Quản lý thiết bị

Hạt nhân cung cấp khả năng truy suất đến các thiết bị thông qua lớp trừu tượng, tuy nhiên bên trong hạt nhân có một lớp đó là quản lý thiết bị.

Hàm hệ thống

Xem thêm hàm hệ thống

Một tiến trình đang chạy không thể nhảy trực tiếp vào không gian mã của hạt nhân trong bộ nhớ vì cơ chế bảo vệ từ bộ vi xử lý, tuy nhiên cũng có một vài cơ chế:

  • Sử dụng ngắt mềm, cách này có hầu như tất cả các phần cứng, và rất phổ biến.
  • Sử dụng một vi lệnh hàm hệ thống. Kĩ thuật này có thực hiện ở x86.
  • Sử dụng cổng gọi. Một cổng gọi là địa chỉ đặc biệt lưu bởi hạt nhân trong danh sách trong bộ nhớ hạt nhân. Khi bộ vi xử lý phát hiện nhảy đến địa chỉ đó, nó sẽ điều hướng đến mục tiêu mà không sinh ra truy suất bất hợp pháp.